package top.infopub.job.cap.dao;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import top.infopub.generic.GenericDao;
import top.infopub.job.cap.domain.LoanFinDomain;
import top.infopub.model.cap.LoanFin;

/** 融资放款(CAP_LOAN_FIN) **/
public interface LoanFinDao extends GenericDao<LoanFin, String> {

	/** codegen **/
	
    /**
     * 查询某个项目融资额 放款日期在查询区间内数据 
     * @param where 开始时间，结束时间，proCode
     * @return 
     * @see
     */
    List<LoanFinDomain> selectProQaOfFinAmt(Map<String, Object> where);

    /**
     * 查询某个区域融资额 放款日期在查询区间内数据  
     * @param where 开始时间，结束时间，hrOrgAreaId
     * @return 
     * @see
     */
    List<LoanFinDomain> selectAreaQaOfFinAmt(Map<String, Object> where);

    /**
     * 汇总所有项目融资额  放款日期在查询区间内数据   排除hr_org_pro_id为null<项目与公司未绑定>
     * @param where 开始时间，结束时间
     * @return 
     * @see
     */
    List<LoanFinDomain> selectAllProQaOfFinAmt(Map<String, Object> where);
    
    /**
     * 查询某个项目  截止统计月份末，该项目所有【融资放款】中，合计（综合成本*放款明细总额）
     * @param where 结束时间loanDateEnd，proCode
     * @return 
     * @see
     */
    BigDecimal selectProQaOfFinSpreadMultiSum(Map<String, Object> where);
    
    /**
     * 查询某个项目  截止统计月份末，该项目所有【融资放款】中，合计（放款明细总额）
     * @param where 结束时间loanDateEnd，proCode
     * @return 
     * @see
     */
    BigDecimal selectProQaOfFinSpreadSum(Map<String, Object> where);
    
}